The user experience on the World Wide Web has evolved from viewing static pages of information to interaction with web-based applications. Most users experience the web through a Web Browser application such as Internet Explorer, Opera, Netscape or Firefox. Web browsers essentially provide a forms-based environment originally designed to display text and presentation information to the application developer. Techniques for manipulating browsers now include richer tools and HTML enhancements, including client side scripting environments, such as JavaScript, Cascading Style Sheets (CSS), and animation plug-ins such as Macromedia Flash.
Web based applications now provide users various types of functionality. When building Web applications, it is difficult to create maintainable, component-based cross-browser applications. Scripting allows developers to add increased interaction, information processing, and control in Web-based content.
Current technology fails to address well understood architectural approaches for defining and implementing associations between different behaviors on the page, and fails to enable reuse of behaviors in the web application design process. Generally, functions are enabled using downloadable java applications or JavaScript nested within the webpage. JavaScript is placed throughout the page in a manner which is not managed centrally. Most Web applications have scripts and behavior randomly placed throughout the page. For example, scripts may be in the head section, in-line, or attached directly to an element. There is no common approach to managing the dependencies between handlers and scripts. This can lead to performance or timing issues, such as when a user clicks a button and the script is not yet available. As a result, resource management to support scripts and web application becomes a problem.
Another issue for developers is managing the constraints of a client-side application. Web-applications are potentially downloaded via a constrained connection to a server. As applications become more interactive, the size of code and data increases, slowing the download process. There is typically a conflict between providing an enriched client interactivity in a web document while maintaining client performance. Therefore, developers seek to remove bottlenecks associated with adding behaviors. Perceived performance is correlated to rendering speed, or how fast the first screen of content displays.
Adding to the resource management problem is the fact that some web applications are evolving to be in an unbounded manner. For example, a typical custom home page can contain anywhere from one to many different components where the component set is potentially limitless. These pages can be very expensive in their ability to download and render. Therefore, as the set of components grow, there needs to be an infrastructure that can properly delegate and manage the deployment of necessary resources and an approach that provides the fastest response to the user.